package negocio.beans;

import java.net.InetAddress;
import java.net.UnknownHostException;

import base.Util;

import com.thoughtworks.xstream.annotations.*;

@XStreamAlias("usuario")
public class Usuario {
	
	public static String confirmado = "confirmado";
	public static String pendente = "pendente";
	public static String bloqueado = "bloqueado";
	public static String recusado = "recusado";
	
	public String login;
	@XStreamOmitField
	public String senha;
	public String nome;
	public String status;
	public String foto;
	@XStreamOmitField
	public long ultimoContato;
	public int ip;
	
	
	
	public Usuario(String login, String senha, String nome, String status, String foto, long ultimoContato, int ip) {
		this.login = login;
		this.senha = senha;
		this.nome = nome;
		this.status = status;
		this.foto = foto;
		this.ultimoContato = ultimoContato;
		this.ip = ip;
	}
	
	public Usuario(String login){
		this.login = login;
		this.senha = null;
		this.nome = null;
		this.status = null;
		this.foto = null;
		this.ultimoContato = 0;
		this.ip = 0;
	}

	public Usuario(String login, String senha, String nome) {
		this.login = login;
		this.senha = senha;
		this.nome = nome;
		this.status = null;
		this.foto = null;
		this.ultimoContato = 0;
		this.ip = 0;
	}
	@Override
	public String toString() {
		return nome + " (" + status + ")";
	}

	@Override
	public boolean equals(Object obj) {
		Usuario comp = (Usuario) obj;
		return comp.getLogin().equals(this.getLogin());
	}
	
	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public int getIp() {
		return ip;
	}

	public void setIp(int ip) {
		this.ip = ip;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getFoto() {
		return foto;
	}

	public void setFoto(String foto) {
		this.foto = foto;
	}

	public long getUltimoContato() {
		return ultimoContato;
	}

	public void setUltimoContato(long ultimoContato) {
		this.ultimoContato = ultimoContato;
	}

	public Object[] toArray() {
		InetAddress ip = null;
		try {
			ip = InetAddress.getByAddress(Util.intToBytes(this.getIp()));
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Object[] retorno = {this.getLogin(), this.getStatus(), ip};
		
		return retorno;
	}

}
